html updates
[clinton/website/site/unknownlamer.org.git] / Site Software.html
CommitLineData
54a817d4 1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml">
5 <head>
6 <title>Site Software</title>
7 <meta name="generator" content="muse.el" />
8 <meta http-equiv="Content-Type"
9 content="text/html; charset=utf-8" />
10 <link href="http://feeds.unknownlamer.org/rss/site-updates"
11 rel="alternate" type="application/rss+xml" title="Updates Feed" />
12
7404d4e1 13<link rel="stylesheet" href="default.css" />
54a817d4 14 </head>
15 <body>
16 <h1>Site Software</h1>
17 <div class="contents">
18<dl>
19<dt>
20<a href="#sec1">Basic Setup</a>
21</dt>
22<dt>
23<a href="#sec2">Scripts</a>
24</dt>
25<dd>
26<dl>
27<dt>
28<a href="#sec3">Book Database</a>
29</dt>
30<dt>
31<a href="#sec4">RSS Feed</a>
32</dt>
33</dl>
34</dd>
35<dt>
36<a href="#sec5">License</a>
37</dt>
38</dl>
39</div>
40
41
42<!-- Page published by Emacs Muse begins here --><h2><a name="sec1" id="sec1"></a>
43Basic Setup</h2>
44
45<p class="first">I work on the static content of the site using <a href="http://mwolson.org/projects/EmacsMuse.html">Emacs Muse</a>. My muse
46configuration is pretty long and available in my
47<a href="http://unknownlamer.org/darcsweb/browse?r=site-emacs;a=headblob;f=/init.d/muse.el">site-emacs repository</a>. The site itself exists in a <a href="http://unknownlamer.org/darcsweb/browse?r=unknownlamer.org;a=summary">darcs repository</a>
48which is a fork of the source repository I edit locally&mdash;the source
49repository contains muse/image files while the site repository
50contains html updates as a separate series of patches.</p>
51
52<p>This provides a very nice editing environment and makes publishing
53fairly easy&mdash;I push edits from my laptop to my workstation and then
54off to <a href="http://hcoop.net">HCoop</a> with the html updates. Almost no effort is spent dealing
55with some dumb web interface or other pointless things making it much
56easier for me to just write things and toss them up onto the web.</p>
57
58
59<h2><a name="sec2" id="sec2"></a>
60Scripts</h2>
61
62<p class="first">There are a few scripts and templates in the <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=summary">darcsweb::site-support</a>
63repository that I use to update the
64site. <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/update.sh">darcsweb::site-support/update.sh</a> automates the process of
65sending patches off to the server via afs.</p>
66
67<h3><a name="sec3" id="sec3"></a>
68Book Database</h3>
69
70<p><a href="Book%20List.html">Book List</a> is autogenerated by <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/books.lisp">darcsweb::site-support/books.lisp</a> which
71reads a template and a small sexp <em>database</em> of book entries and spits
72out a muse file which is not kept under VC. This works well for me
73currently, but I intend to eventually <em>upgrade</em> this simple system to an
74<a href="http://common-lisp.net/project/elephant/">Elephant</a> object database with a <a href="http://common-lisp.net/project/mcclim/">CLIM</a> frontend for editing
75entries. I'll probably end up writing a minimal database manager for
76the sexp based system first.</p>
77
78
79<h3><a name="sec4" id="sec4"></a>
80RSS Feed</h3>
81
82<p class="first">The site rss feed is generated by <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/rss.lisp">darcsweb::site-support/rss.lisp</a>. It
83fetches the darcs xml changelog for interesting files and then spits
84out a tolerable feed with automagically generated links from <code>*.muse</code> to
85<code>*.html</code>. A <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/update-rss-binary">dumped binary</a> is run from a darcs hook on the main
86repository that handily updates the feed whenever I commit.</p>
87
88<p><code>apply posthook update-site-rss
89apply run-posthook</code></p>
90
91<p>Boring old Apache is used to serve up the generated feed. The feed
92stays updated when I update, and Apache deals with properly letting
93readers know when the file last changed and whatnot.</p>
94
95
96
97<h2><a name="sec5" id="sec5"></a>
98License</h2>
99
100<p class="first">All of the scripts used to generate the site are in the public domain
101unless otherwise mentioned in the files themselves. To use them
102anywhere else would require modification, but a few chunks of code
103could be generally useful for other things.</p>
104
105
106 <!-- Page published by Emacs Muse ends here -->
107
108 <p class="cke-buttons">
109 <!-- validating badges, any browser, etc -->
110 <a href="http://validator.w3.org/check/referer"><img
111 src="http://www.w3.org/Icons/valid-xhtml10"
112 alt="Valid XHTML 1.0!" /></a>
113
114 <a href="http://www.anybrowser.org/campaign/"><img
115 src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser
116 ]" /></a>
117
118 <a href="http://www.debian.org/"><img
119 src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a>
120
121 <a href="http://hcoop.net/">
122 <img src="img/buttons/hcoop.png"
123 alt="[ Hosted by HCoop]" />
124 </a>
125
126 <a href="http://www.fsf.org/register_form?referrer=114">
127 <img src="img/buttons/fsf_member.png"
128 alt="[ FSF Associate Member ]" />
129 </a>
130 </p>
131
7404d4e1 132<p class="cke-footer"> It's no contest, but we still race there
133 Like the saintly tortoise and the godless hare
54a817d4 134</p>
135<p class="cke-timestamp">Last Modified:
136 September 28, 2008</p>
137 </body>
138</html>